import UIKit

@available(iOS 2.0, *)
extension QKC where AA :UISearchBar {
		// default is UIBarStyleDefault (blue)
    open func barStyle_qk_s(_ barStyle:  UIBarStyle ) -> QKC<AA,YY,ZZ, UIBarStyle >{
		return link(next: barStyle).then_QK { $0.value.barStyle = barStyle }
	}
    open func barStyle_qk_g() -> QKC<AA,YY,ZZ, UIBarStyle >{
		 self +^ self.value.barStyle
	}

		// weak reference. default is nil
     open func delegate_qk_s(_ delegate:  UISearchBarDelegate? ) -> QKC<AA,YY,ZZ, UISearchBarDelegate? >{
		return link(next: delegate).then_QK { $0.value.delegate = delegate }
	}
     open func delegate_qk_g() -> QKC<AA,YY,ZZ, UISearchBarDelegate? >{
		 self +^ self.value.delegate
	}

		// current/starting search text
    open func text_qk_s(_ text:  String? ) -> QKC<AA,YY,ZZ, String? >{
		return link(next: text).then_QK { $0.value.text = text }
	}
    open func text_qk_g() -> QKC<AA,YY,ZZ, String? >{
		 self +^ self.value.text
	}

		// default is nil
    open func prompt_qk_s(_ prompt:  String? ) -> QKC<AA,YY,ZZ, String? >{
		return link(next: prompt).then_QK { $0.value.prompt = prompt }
	}
    open func prompt_qk_g() -> QKC<AA,YY,ZZ, String? >{
		 self +^ self.value.prompt
	}

		// default is nil
    open func placeholder_qk_s(_ placeholder:  String? ) -> QKC<AA,YY,ZZ, String? >{
		return link(next: placeholder).then_QK { $0.value.placeholder = placeholder }
	}
    open func placeholder_qk_g() -> QKC<AA,YY,ZZ, String? >{
		 self +^ self.value.placeholder
	}

		// default is NO
    open func showsBookmarkButton_qk_s(_ showsBookmarkButton:  Bool ) -> QKC<AA,YY,ZZ, Bool >{
		return link(next: showsBookmarkButton).then_QK { $0.value.showsBookmarkButton = showsBookmarkButton }
	}
    open func showsBookmarkButton_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.showsBookmarkButton
	}

    @available(iOS 13.0, *)
    open func searchTextField_qk_g() -> QKC<AA,YY,ZZ, UISearchTextField >{
		 self +^ self.value.searchTextField
	}

		// default is NO
    open func showsCancelButton_qk_s(_ showsCancelButton:  Bool ) -> QKC<AA,YY,ZZ, Bool >{
		return link(next: showsCancelButton).then_QK { $0.value.showsCancelButton = showsCancelButton }
	}
    open func showsCancelButton_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.showsCancelButton
	}

		// default is NO
    @available(iOS 3.2, *)
    open func showsSearchResultsButton_qk_s(_ showsSearchResultsButton:  Bool ) -> QKC<AA,YY,ZZ, Bool >{
		return link(next: showsSearchResultsButton).then_QK { $0.value.showsSearchResultsButton = showsSearchResultsButton }
	}
    @available(iOS 3.2, *)
    open func showsSearchResultsButton_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.showsSearchResultsButton
	}

		// default is NO
    @available(iOS 3.2, *)
    open func isSearchResultsButtonSelected_qk_s(_ isSearchResultsButtonSelected:  Bool ) -> QKC<AA,YY,ZZ, Bool >{
		return link(next: isSearchResultsButtonSelected).then_QK { $0.value.isSearchResultsButtonSelected = isSearchResultsButtonSelected }
	}
    @available(iOS 3.2, *)
    open func isSearchResultsButtonSelected_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.isSearchResultsButtonSelected
	}

	/// Modifications made to the returned UITextInputAssistantItem are reflected automatically.
    @available(iOS 9.0, *)
    open func inputAssistantItem_qk_g() -> QKC<AA,YY,ZZ, UITextInputAssistantItem >{
		 self +^ self.value.inputAssistantItem
	}

    open func tintColor_qk_s(_ tintColor:  UIColor) -> QKC<AA,YY,ZZ, UIColor>{
		return link(next: tintColor).then_QK { $0.value.tintColor = tintColor }
	}
    open func tintColor_qk_g() -> QKC<AA,YY,ZZ, UIColor>{
		 self +^ self.value.tintColor
	}

		// default is nil
    @available(iOS 7.0, *)
    open func barTintColor_qk_s(_ barTintColor:  UIColor? ) -> QKC<AA,YY,ZZ, UIColor? >{
		return link(next: barTintColor).then_QK { $0.value.barTintColor = barTintColor }
	}
    @available(iOS 7.0, *)
    open func barTintColor_qk_g() -> QKC<AA,YY,ZZ, UIColor? >{
		 self +^ self.value.barTintColor
	}

    @available(iOS 7.0, *)
    open func searchBarStyle_qk_s(_ searchBarStyle:  UISearchBar.Style) -> QKC<AA,YY,ZZ, UISearchBar.Style>{
		return link(next: searchBarStyle).then_QK { $0.value.searchBarStyle = searchBarStyle }
	}
    @available(iOS 7.0, *)
    open func searchBarStyle_qk_g() -> QKC<AA,YY,ZZ, UISearchBar.Style>{
		 self +^ self.value.searchBarStyle
	}

		// Default is NO on iOS 6 and earlier. Always YES if barStyle is set to UIBarStyleBlackTranslucent
    @available(iOS 3.0, *)
    open func isTranslucent_qk_s(_ isTranslucent:  Bool ) -> QKC<AA,YY,ZZ, Bool >{
		return link(next: isTranslucent).then_QK { $0.value.isTranslucent = isTranslucent }
	}
    @available(iOS 3.0, *)
    open func isTranslucent_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.isTranslucent
	}

		// array of NSStrings. no scope bar shown unless 2 or more items
    @available(iOS 3.0, *)
    open func scopeButtonTitles_qk_s(_ scopeButtonTitles:  [String]? ) -> QKC<AA,YY,ZZ, [String]? >{
		return link(next: scopeButtonTitles).then_QK { $0.value.scopeButtonTitles = scopeButtonTitles }
	}
    @available(iOS 3.0, *)
    open func scopeButtonTitles_qk_g() -> QKC<AA,YY,ZZ, [String]? >{
		 self +^ self.value.scopeButtonTitles
	}

		// index into array of scope button titles. default is 0. ignored if out of range
    @available(iOS 3.0, *)
    open func selectedScopeButtonIndex_qk_s(_ selectedScopeButtonIndex:  Int ) -> QKC<AA,YY,ZZ, Int >{
		return link(next: selectedScopeButtonIndex).then_QK { $0.value.selectedScopeButtonIndex = selectedScopeButtonIndex }
	}
    @available(iOS 3.0, *)
    open func selectedScopeButtonIndex_qk_g() -> QKC<AA,YY,ZZ, Int >{
		 self +^ self.value.selectedScopeButtonIndex
	}

		// default is NO. if YES, shows the scope bar. call sizeToFit: to update frame
    @available(iOS 3.0, *)
    open func showsScopeBar_qk_s(_ showsScopeBar:  Bool ) -> QKC<AA,YY,ZZ, Bool >{
		return link(next: showsScopeBar).then_QK { $0.value.showsScopeBar = showsScopeBar }
	}
    @available(iOS 3.0, *)
    open func showsScopeBar_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.showsScopeBar
	}

    open func inputAccessoryView_qk_s(_ inputAccessoryView:  UIView?) -> QKC<AA,YY,ZZ, UIView?>{
		return link(next: inputAccessoryView).then_QK { $0.value.inputAccessoryView = inputAccessoryView }
	}
    open func inputAccessoryView_qk_g() -> QKC<AA,YY,ZZ, UIView?>{
		 self +^ self.value.inputAccessoryView
	}

	// 1pt wide images and resizable images will be scaled or tiled according to the resizable area, otherwise the image will be tiled
    @available(iOS 5.0, *)
    open func backgroundImage_qk_s(_ backgroundImage:  UIImage?) -> QKC<AA,YY,ZZ, UIImage?>{
		return link(next: backgroundImage).then_QK { $0.value.backgroundImage = backgroundImage }
	}
    @available(iOS 5.0, *)
    open func backgroundImage_qk_g() -> QKC<AA,YY,ZZ, UIImage?>{
		 self +^ self.value.backgroundImage
	}

    @available(iOS 5.0, *)
    open func scopeBarBackgroundImage_qk_s(_ scopeBarBackgroundImage:  UIImage?) -> QKC<AA,YY,ZZ, UIImage?>{
		return link(next: scopeBarBackgroundImage).then_QK { $0.value.scopeBarBackgroundImage = scopeBarBackgroundImage }
	}
    @available(iOS 5.0, *)
    open func scopeBarBackgroundImage_qk_g() -> QKC<AA,YY,ZZ, UIImage?>{
		 self +^ self.value.scopeBarBackgroundImage
	}

    @available(iOS 5.0, *)
    open func searchFieldBackgroundPositionAdjustment_qk_s(_ searchFieldBackgroundPositionAdjustment:  UIOffset) -> QKC<AA,YY,ZZ, UIOffset>{
		return link(next: searchFieldBackgroundPositionAdjustment).then_QK { $0.value.searchFieldBackgroundPositionAdjustment = searchFieldBackgroundPositionAdjustment }
	}
    @available(iOS 5.0, *)
    open func searchFieldBackgroundPositionAdjustment_qk_g() -> QKC<AA,YY,ZZ, UIOffset>{
		 self +^ self.value.searchFieldBackgroundPositionAdjustment
	}

    @available(iOS 5.0, *)
    open func searchTextPositionAdjustment_qk_s(_ searchTextPositionAdjustment:  UIOffset) -> QKC<AA,YY,ZZ, UIOffset>{
		return link(next: searchTextPositionAdjustment).then_QK { $0.value.searchTextPositionAdjustment = searchTextPositionAdjustment }
	}
    @available(iOS 5.0, *)
    open func searchTextPositionAdjustment_qk_g() -> QKC<AA,YY,ZZ, UIOffset>{
		 self +^ self.value.searchTextPositionAdjustment
	}

    @available(iOS 3.0, *)
    open func setShowsCancelButton_qk_f(_ showsCancelButton: Bool, animated: Bool) -> QKC<AA,YY,ZZ, Bool>{
		 self +^ self.value.setShowsCancelButton(showsCancelButton, animated:animated) +^ showsCancelButton
	}

    @available(iOS 13.0, *)
    open func setShowsScope_qk_f(_ show: Bool, animated animate: Bool) -> QKC<AA,YY,ZZ, Bool>{
        self +^ self.value.setShowsScopeBar(show, animated:animate) +^ show
	}

		// Use UIBarMetricsDefaultPrompt to set a separate backgroundImage for a search bar with a prompt
    @available(iOS 7.0, *)
    open func setBackgroundImage_qk_f(_ backgroundImage: UIImage?, for barPosition: UIBarPosition, barMetrics: UIBarMetrics) -> QKC<AA,YY,ZZ, UIImage?>{
		 self +^ self.value.setBackgroundImage(backgroundImage, for:barPosition, barMetrics:barMetrics) +^ backgroundImage
	}

    @available(iOS 7.0, *)
    open func backgroundImage_qk_f(for barPosition: UIBarPosition, barMetrics: UIBarMetrics) -> QKC<AA,YY,ZZ,UIImage?>{
		 self +^ self.value.backgroundImage(for:barPosition, barMetrics:barMetrics)
	}

    @available(iOS 5.0, *)
    open func setSearchFieldBackgroundImage_qk_f(_ backgroundImage: UIImage?, for state: UIControl.State) -> QKC<AA,YY,ZZ, UIImage?>{
		 self +^ self.value.setSearchFieldBackgroundImage(backgroundImage, for:state) +^ backgroundImage
	}

    @available(iOS 5.0, *)
    open func searchFieldBackgroundImage_qk_f(for state: UIControl.State) -> QKC<AA,YY,ZZ,UIImage?>{
		 self +^ self.value.searchFieldBackgroundImage(for:state)
	}

    @available(iOS 5.0, *)
    open func setImage_qk_f(_ iconImage: UIImage?, for icon: UISearchBar.Icon, state: UIControl.State) -> QKC<AA,YY,ZZ, UIImage?>{
		 self +^ self.value.setImage(iconImage, for:icon, state:state) +^ iconImage
	}

    @available(iOS 5.0, *)
    open func image_qk_f(for icon: UISearchBar.Icon, state: UIControl.State) -> QKC<AA,YY,ZZ,UIImage?>{
		 self +^ self.value.image(for:icon, state:state)
	}

    @available(iOS 5.0, *)
    open func setScopeBarButtonBackgroundImage_qk_f(_ backgroundImage: UIImage?, for state: UIControl.State) -> QKC<AA,YY,ZZ, UIImage?>{
		 self +^ self.value.setScopeBarButtonBackgroundImage(backgroundImage, for:state) +^ backgroundImage
	}

    @available(iOS 5.0, *)
    open func scopeBarButtonBackgroundImage_qk_f(for state: UIControl.State) -> QKC<AA,YY,ZZ,UIImage?>{
		 self +^ self.value.scopeBarButtonBackgroundImage(for:state)
	}

    @available(iOS 5.0, *)
    open func setScopeBarButtonDividerImage_qk_f(_ dividerImage: UIImage?, forLeftSegmentState leftState: UIControl.State, rightSegmentState rightState: UIControl.State) -> QKC<AA,YY,ZZ, UIImage?>{
		 self +^ self.value.setScopeBarButtonDividerImage(dividerImage, forLeftSegmentState:leftState, rightSegmentState:rightState) +^ dividerImage
	}

    @available(iOS 5.0, *)
    open func scopeBarButtonDividerImage_qk_f(forLeftSegmentState leftState: UIControl.State, rightSegmentState rightState: UIControl.State) -> QKC<AA,YY,ZZ,UIImage?>{
		 self +^ self.value.scopeBarButtonDividerImage(forLeftSegmentState:leftState, rightSegmentState:rightState)
	}

   
    

    

    @available(iOS 5.0, *)
    open func setPositionAdjustment_qk_f(_ adjustment: UIOffset, for icon: UISearchBar.Icon) -> QKC<AA,YY,ZZ, UIOffset>{
		 self +^ self.value.setPositionAdjustment(adjustment, for:icon) +^ adjustment
	}

    @available(iOS 5.0, *)
    open func positionAdjustment_qk_f(for icon: UISearchBar.Icon) -> QKC<AA,YY,ZZ,UIOffset>{
		 self +^ self.value.positionAdjustment(for:icon)
	}

}

